from channels.extraction.extraction1 import Test1
from channels.extraction.read_file_2_lines import ReadFile2Lines
from channels.extraction.read_json_2_lines import ReadJson2Lines
from channels.extraction.read_dir_2_lines import ReadDir2Lines
from channels.extraction.read_file_2_lines_NLSm import ReadFile2Lines_NLSm

from channels.formatter.formatter1 import Test2
from channels.formatter.Lines_2_lines import Lines2Lines
from channels.formatter.Lines_2_space import Lines2Space
from channels.formatter.Lines_2_Lines_NLSm import Lines2LinesNLSm
from channels.formatter.Lines_2_split import Lines2Split


def channels_modules():
    # extraction register
    extractions_map = {
        'Test1': Test1,
        'ReadFile2Lines': ReadFile2Lines,
        'ReadJson2Lines': ReadJson2Lines,
        'ReadDir2Lines': ReadDir2Lines,
        'ReadFile2Lines_NLSm': ReadFile2Lines_NLSm
    }

    # formatter register
    formatter_map = {
        'Test2': Test2,
        'Lines2Lines': Lines2Lines,        
        'Lines2LinesNLSm': Lines2LinesNLSm,
        'Lines2Space': Lines2Space,
        'Lines2Split': Lines2Split,
    }

    register_modules = {
        'extractions': extractions_map,
        'formatters': formatter_map
    }

    return register_modules
